package org.jeecg.modules.meter.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @Description: 线下退款
 * @Author: jeecg-boot
 * @Date:   2020-01-03
 * @Version: V1.0
 */
@Data
@TableName("meter_order")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="meter_order对象", description="线下退款")
public class MeterOrderReFund {
    
	/**id*/
	@TableId(type = IdType.UUID)
    @ApiModelProperty(value = "id")
	private String id;
	/**租户id*/
	@Excel(name = "租户id", width = 15)
    @ApiModelProperty(value = "租户id")
	private Integer tenantId;
	/**设备id*/
	@Excel(name = "设备id", width = 15)
    @ApiModelProperty(value = "设备id")
	private String meterId;
	/**payMeterNo*/
	@Excel(name = "payMeterNo", width = 15)
    @ApiModelProperty(value = "payMeterNo")
	private String payMeterNo;
	/**编号(同一设备内编号)*/
	@Excel(name = "编号(同一设备内编号)", width = 15)
    @ApiModelProperty(value = "编号(同一设备内编号)")
	private Integer seq;
	/**订单号(yyyyMMddHHmmss+M+4位流水号)*/
	@Excel(name = "订单号(yyyyMMddHHmmss+M+4位流水号)", width = 15)
    @ApiModelProperty(value = "订单号(yyyyMMddHHmmss+M+4位流水号)")
	private String sn;
	/**支付方式 alipay:支付宝,weixinpay:微信,offline:线下*/
	@Excel(name = "支付方式 alipay:支付宝,weixinpay:微信,offline:线下", width = 15)
    @ApiModelProperty(value = "支付方式 alipay:支付宝,weixinpay:微信,offline:线下")
	private String payType;
	/**支付金额(单位:分)*/
	@Excel(name = "支付金额(单位:分)", width = 15)
    @ApiModelProperty(value = "支付金额(单位:分)")
	private String payAmount;
	/**支付时间*/
	@Excel(name = "支付时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "支付时间")
	private Date payTime;
	/**支付状态(0:支付中 1:支付成功 9:支付失败或用户取消 )*/
	@Excel(name = "支付状态(0:支付中 1:支付成功 9:支付失败或用户取消 )", width = 15)
    @ApiModelProperty(value = "支付状态(0:支付中 1:支付成功 9:支付失败或用户取消 )")
	private Integer payStatus;
	/**参数化请求内容*/
	@Excel(name = "参数化请求内容", width = 15)
    @ApiModelProperty(value = "参数化请求内容")
	private String request;
	/**支付接口响应内容*/
	@Excel(name = "支付接口响应内容", width = 15)
    @ApiModelProperty(value = "支付接口响应内容")
	private String response;
	/**充值状态(0:充值中 1:充值成功 9:充值失败)*/
	@Excel(name = "充值状态(0:充值中 1:充值成功 9:充值失败)", width = 15)
    @ApiModelProperty(value = "充值状态(0:充值中 1:充值成功 9:充值失败)")
	private Integer chargeStatus;
	/**用户id*/
	@Excel(name = "用户id", width = 15)
    @ApiModelProperty(value = "用户id")
	private String userId;
	/**电表单价*/
	@Excel(name = "电表单价", width = 15)
    @ApiModelProperty(value = "电表单价")
	private String price;
	/**房间号*/
	@Excel(name = "房间号", width = 15)
    @ApiModelProperty(value = "房间号")
	@Dict(dicCode = "id",dictTable = "base_room" ,dicText = "name")
	private String roomId;
	/**业主(用户)名*/
	@Excel(name = "业主(用户)名", width = 15)
    @ApiModelProperty(value = "业主(用户)名")
	private String owner;
	/**发票号*/
	@Excel(name = "发票号", width = 15)
    @ApiModelProperty(value = "发票号")
	private String invoiceNo;
	/**开票时间*/
	@Excel(name = "开票时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开票时间")
	private Date invoiceTime;
	/**开票人*/
	@Excel(name = "开票人", width = 15)
    @ApiModelProperty(value = "开票人")
	private String invoiceName;
	/**开票手机号*/
	@Excel(name = "开票手机号", width = 15)
    @ApiModelProperty(value = "开票手机号")
	private String invoiceMobile;
	/**开票状态*/
	@Excel(name = "开票状态", width = 15)
    @ApiModelProperty(value = "开票状态")
	private Integer invoiceStatus;
	/**手抄记录ids(线下充值失败后定时需要)*/
	@Excel(name = "手抄记录ids(线下充值失败后定时需要)", width = 15)
    @ApiModelProperty(value = "手抄记录ids(线下充值失败后定时需要)")
	private String handworkId;
	/**收费项目code*/
	@Excel(name = "收费项目code", width = 15)
    @ApiModelProperty(value = "收费项目code")
	private String feeItemCode;
	/**开票税号*/
	@Excel(name = "开票税号", width = 15)
    @ApiModelProperty(value = "开票税号")
	private String invoiceEin;
	/**开票邮箱*/
	@Excel(name = "开票邮箱", width = 15)
    @ApiModelProperty(value = "开票邮箱")
	private String invoiceEmail;
	/**开票地址*/
	@Excel(name = "开票地址", width = 15)
    @ApiModelProperty(value = "开票地址")
	private String invoiceAddress;
	/**开票账号*/
	@Excel(name = "开票账号", width = 15)
    @ApiModelProperty(value = "开票账号")
	private String invoiceAccount;
	/**充值支付方式（0:app ）*/
	@Excel(name = "充值支付方式（0:app ）", width = 15)
    @ApiModelProperty(value = "充值支付方式（0:app ）")
	private Integer payMode;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
	private String remarks;
	/**本次缴费换算的电量*/
	@Excel(name = "本次缴费换算的电量", width = 15)
    @ApiModelProperty(value = "本次缴费换算的电量")
	private String converElec;
	/**经过冻结转换后的充值量*/
	@Excel(name = "经过冻结转换后的充值量", width = 15)
    @ApiModelProperty(value = "经过冻结转换后的充值量")
	private String chargePayUse;
	/**经过转换后的多余量*/
	@Excel(name = "经过转换后的多余量", width = 15)
    @ApiModelProperty(value = "经过转换后的多余量")
	private String chargePayKwh;
	/**冻结表的id*/
	@Excel(name = "冻结表的id", width = 15)
    @ApiModelProperty(value = "冻结表的id")
	private String meterBlockId;
	/**电表对应的公司编码*/
	@Excel(name = "电表对应的公司编码", width = 15)
    @ApiModelProperty(value = "电表对应的公司编码")
	private String companyCode;
	/**电损*/
	@Excel(name = "电损", width = 15)
    @ApiModelProperty(value = "电损")
	private String loss;
	/**上期读数*/
	@Excel(name = "上期读数", width = 15)
    @ApiModelProperty(value = "上期读数")
	private String beforeNum;
	/**本期读数*/
	@Excel(name = "本期读数", width = 15)
    @ApiModelProperty(value = "本期读数")
	private String nowNum;
	/**本次应缴金额*/
	@Excel(name = "本次应缴金额", width = 15)
    @ApiModelProperty(value = "本次应缴金额")
	private String mustAmount;
	/**本次缴完后的欠缴金额*/
	@Excel(name = "本次缴完后的欠缴金额", width = 15)
    @ApiModelProperty(value = "本次缴完后的欠缴金额")
	private String unMustAmount;
	/**本次支付完结余*/
	@Excel(name = "本次支付完结余", width = 15)
    @ApiModelProperty(value = "本次支付完结余")
	private String balance;
	/**实际操作者-pay后台迁移数据*/
	@Excel(name = "实际操作者-pay后台迁移数据", width = 15)
    @ApiModelProperty(value = "实际操作者-pay后台迁移数据")
	private String operUser;
	/**退款状态0:未退款 1:已退款*/
	@Excel(name = "退款状态0:未退款 1:已退款", width = 15)
    @ApiModelProperty(value = "退款状态0:未退款 1:已退款")
	private String refundStatus;
	/**退款原因*/
	@Excel(name = "退款原因", width = 15)
    @ApiModelProperty(value = "退款原因")
	private String refundReason;
	/**退款者*/
	@Excel(name = "退款者", width = 15)
    @ApiModelProperty(value = "退款者")
	private String refundBy;
	/**退款日期*/
	@Excel(name = "退款日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "退款日期")
	private Date refundDate;
	/**创建者*/
	@Excel(name = "创建者", width = 15)
    @ApiModelProperty(value = "创建者")
	private String createBy;
	/**创建时间*/
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**更新者*/
	@Excel(name = "更新者", width = 15)
    @ApiModelProperty(value = "更新者")
	private String updateBy;
	/**更新时间*/
	@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;
	/**删除标志*/
	@Excel(name = "删除标志", width = 15)
    @ApiModelProperty(value = "删除标志")
	private String delFlag;


}
